package roles;


import inteligencia_personaje.MovimientosPersonaje;

import javax.swing.ImageIcon;

import main.Programa;
import graficos.RepresentacionGrafica;
import recursos.Coordenada;

public class Mario extends Personaje {
	
	protected ImageIcon [] imagenes;
	protected boolean puedodisp;
	protected boolean invensible;
	
	public Mario(Programa MP,Coordenada C){
		super(C,MP,new RepresentacionGrafica(new ImageIcon("src/recursos/mario1.gif")));
		imagenes = new ImageIcon [5];
		cargarImagenes();
		puedodisp=true;
		invensible=false;
	}
	
	protected void cargarImagenes(){
		imagenes[0] = new ImageIcon(getClass().getResource("/recursos/QUIETO.gif"));
		imagenes[1] = new ImageIcon(getClass().getResource("/recursos/MOV_DER.gif"));
		imagenes[2] = new ImageIcon(getClass().getResource("/recursos/MOV_IZQ.gif"));
		imagenes[3] = new ImageIcon(getClass().getResource("/recursos/mario-jump-left.gif"));
		imagenes[4] = new ImageIcon(getClass().getResource("/recursos/mario-jump-right.gif"));
		
	}
	public boolean obtenerdisparo(){
		return puedodisp;
	}
	public void cambiardisparo(boolean b){
		puedodisp=b;
	}
	protected void quieto(){	
		miRepresentacionGrafica.setIcon(imagenes[0]);	
	}
	
	protected void derecha(){
		miRepresentacionGrafica.setIcon(imagenes[1]);
	}
	
	protected void izquierda(){
		miRepresentacionGrafica.setIcon(imagenes[2]);
	}
	
	protected void saltarDerecha(){
		miRepresentacionGrafica.setIcon(imagenes[4]);
	}
	
	protected void saltarIzquierda(){
		miRepresentacionGrafica.setIcon (imagenes[3]);
	}
	
	public MovimientosPersonaje obtenerMovPJ(){
		return movPJ;
	}
	public void evolucion(){
		miRepresentacionGrafica.setIcon(null);
	}
	public void comerflor(){
		elPrograma.incrementarPuntaje(5);
	}
	
	public void saltar(int vel,int cond){
		if(cond == 0){	
			saltarDerecha();
			establecerCoordenada(this.obtenerCoordenada().obtenerX(),this.obtenerCoordenada().obtenerY()-vel);
		}
		if(cond == 1){
			saltarDerecha();
			establecerCoordenada(this.obtenerCoordenada().obtenerX()+vel,this.obtenerCoordenada().obtenerY()-vel);
		}
		if(cond == 2){
			saltarIzquierda();
			establecerCoordenada(this.obtenerCoordenada().obtenerX()-vel,this.obtenerCoordenada().obtenerY()-vel);
		}
	}
	
	public void irDerecha(int vel){
		derecha();
		establecerCoordenada(this.obtenerCoordenada().obtenerX()+vel,this.obtenerCoordenada().obtenerY());
	}
	
	public void irIzquierda(int vel){
		izquierda();
		establecerCoordenada(this.obtenerCoordenada().obtenerX()-vel,this.obtenerCoordenada().obtenerY());
	}
	
	public void parar(){
		quieto();
	}
	
	public void setinvensible(boolean g){
		invensible=g;
	}
	public boolean getinvensible(){
		return invensible;
	}
	
}
